Solidity হলো স্মার্ট কন্ট্র্যাক্ট লেখার জন্য ব্যবহৃত একটি প্রোগ্রামিং ভাষা, যা ইথেরিয়াম ব্লকচেইনের জন্য বিশেষভাবে ডিজাইন করা হয়েছে। এটি একটি স্ট্যাটিক টাইপড (Static Typed) ভাষা এবং এটি জাভাস্ক্রিপ্ট, পাইথন, এবং সি++ এর মতো কিছু বৈশিষ্ট্য ধারণ করে। Solidity ব্যবহার করে স্মার্ট কন্ট্র্যাক্ট তৈরি করা যায়, যা স্বয়ংক্রিয়ভাবে চুক্তি কার্যকর করতে এবং ব্লকচেইনে লেনদেন সংরক্ষণ করতে সক্ষম।
Solidity তে স্মার্ট কন্ট্র্যাক্ট লেখার জন্য কিছু মৌলিক গঠন এবং উপাদান রয়েছে:
pragma solidity ^0.8.0;
Solidity ভাষায় একটি সাধারণ কন্ট্র্যাক্ট লেখা যা একটি সংখ্যা সংরক্ষণ করে এবং সেই সংখ্যাকে আপডেট করার সুবিধা দেয়:
// Solidity কম্পাইলারের ভার্সন নির্ধারণ pragma solidity ^0.8.0; // কন্ট্র্যাক্ট ঘোষণা contract SimpleStorage { // একটি স্টেট ভ্যারিয়েবল যা একটি সংখ্যা সংরক্ষণ করবে uint256 public storedNumber; // একটি ফাংশন যা সংখ্যা সংরক্ষণ করবে function set(uint256 _number) public { storedNumber = _number; } // একটি ফাংশন যা সংরক্ষিত সংখ্যা ফেরত দিবে function get() public view returns (uint256) { return storedNumber; } }
pragma solidity ^0.8.0;
নির্দেশ করে যে এটি Solidity 0.8.0 বা এর পরবর্তী ভার্সন কম্পাইলারের জন্য উপযোগী।SimpleStorage
নামে ঘোষণা করা হয়েছে। এটি একটি স্মার্ট কন্ট্র্যাক্ট যা একটি সংখ্যা সংরক্ষণ এবং পুনরুদ্ধার করতে পারে।uint256 public storedNumber;
—এটি একটি সংখ্যাকে (unsigned integer) স্টোর করার জন্য ব্যবহৃত হয়। এটি পাবলিক (public) হওয়ায় কেউ এটি পড়তে পারে।function set(uint256 _number)
—এটি একটি ফাংশন যা নতুন সংখ্যা সংরক্ষণ করে। _number
হলো একটি প্যারামিটার যা ব্যবহারকারী ইনপুট হিসেবে প্রদান করবে।function get()
—এটি একটি ভিউ (view) ফাংশন যা কেবলমাত্র সংরক্ষিত সংখ্যাটি দেখায়। এটি ব্লকচেইনে কোন পরিবর্তন আনে না, তাই এটি বিনামূল্যে কল করা যায়।set
এবং get
ফাংশনগুলো ব্যবহার করে কন্ট্র্যাক্টের সাথে ইন্টারঅ্যাক্ট করতে পারেন।নিচে একটি কন্ট্র্যাক্ট দেওয়া হলো যা ব্যবহারকারীদের কাছে অর্থ পাঠাতে এবং গ্রহণ করতে ব্যবহৃত হয়:
pragma solidity ^0.8.0; contract SimplePayment { // পেমেন্ট প্রক্রিয়া ফাংশন function pay() public payable { // ফাংশনটি ফান্ড গ্রহণ করতে সক্ষম হবে } // কন্ট্র্যাক্টের ব্যালেন্স দেখতে function getBalance() public view returns (uint256) { return address(this).balance; } }
এটি একটি কন্ট্র্যাক্ট যা ইনপুট যাচাই করার কাজ করে:
pragma solidity ^0.8.0; contract Validator { uint256 public minimumValue = 10; function validate(uint256 _value) public view returns (bool) { if (_value >= minimumValue) { return true; } else { return false; } } }
আরও দেখুন...